namespace Sponsorship.Domain
{
    /// <summary>
    /// Defines a common interface for a domain event. Domain events are raised by the business logic in the domain model classes whenever something
    /// in the domain has changed.
    /// They are persisted in an event store, and handled by specific event handlers to update the different read models of the application.
    /// The concrete domain events are defined in the Contracts.tt file.
    /// </summary>
    public interface IEvent
    {
        string GetHeaderValue (string key);
        int GetVersion();
        void SetHeader (string key, string value);
    }
}